package main

import (
	"database/sql"
	"fmt"
	_ "github.com/go-sql-driver/mysql"
	"log"
)

func main() {
	// 1.设置驱动
	//	"root:密码@tcp(ip:port)/数据库名称"
	connStr := "root:root@tcp(127.0.0.1:3306)/db01"
	db, err := sql.Open("mysql", connStr)
	if err != nil {
		log.Fatal(err.Error())
		return
	}
	//// 2.创建数据表
	//_, err = db.Exec("create table person(id int auto_increment primary key,name varchar(12) not null,age int default 1);")
	//if err != nil {
	//	log.Fatal(err.Error())
	//	return
	//} else {
	//	fmt.Println("数据表创建成功")
	//}
	// 3.插入数据
	_, err = db.Exec("insert into person(name,age) values(?,?)", "tom", 15)
	if err != nil {
		log.Fatal(err.Error())
		return
	} else {
		fmt.Println("插入数据成功")
	}

	// 4.查询数据
	rows, err := db.Query("select * from person;")
	if err != nil {
		log.Fatal(err.Error())
		return
	} else {
		fmt.Println("查询数据")
	}
	//rows.Next()==true表示有数据
	//数据的遍历输出
scan:
	if rows.Next(){
		person := new(Person)
		//从这一行中读
		err := rows.Scan(&person.Id,&person.Name,&person.Age)
		if err!=nil{
			log.Fatal(err.Error())
			return
		}
		fmt.Println(person.Id,person.Name,person.Age)
	}
	goto scan
}

type Person struct {
	Id int
	Name string
	Age int
}